package ksv.cron;

import ksv.cron.v1.ICron;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * @创建人 xiaojiancheng
 * @时间 2020/9/26
 * @描述 $
 */
@Setter
@Getter
public class CronContext {
    private CronModel.R callbackResult;

    private int currentTryCount = -1;
    /**
     *  {@link #taskComplete}       任务是否完成
     *  {@link #taskDelete}         任务已经删除了
     */
    private boolean taskComplete = false;
    private boolean taskDelete = false;
    private boolean taskDisabled = false;

    private Throwable ex;
    private ICron iCron;
    private String uniqueKey;

    //  开始
    private LocalDateTime startTime;
    private LocalDateTime endTime;

    //  是否需要执行  在分布式节点中 是否需要去  回调钩子前置函数判断这个值
    //  如果不继续 那么不会回调钩子函数 也不会回调钩子后置函数
    private boolean shouldContinue = true;

    //  是否占得redis锁  避免重复加锁
    private boolean hasLock = false;

    //
    private CronModel.R result;
}
